package com.nimitz.module.employee.mapper;

import com.nimitz.module.employee.domain.EmpInduction;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 入职 数据层
 */
public interface EmpInductionMapper {

    /**
     * 新增入职
     *
     * @param induction 入职
     * @return 结果
     */
    int insertInduction(@Param(value = "induction") EmpInduction induction);

    /**
     * 修改入职
     *
     * @param induction 入职
     * @return 结果
     */
    int updateInduction(@Param(value = "induction") EmpInduction induction);


    /**
     * 根据入职id查询入职
     *
     * @param inductionId 入职id
     * @return 入职
     */
    EmpInduction selectInductionById(@Param(value = "inductionId") Integer inductionId);

    /**
     * 根据条件查询入职列表（含分页）
     *
     * @param induction 入职
     * @return 入职集合
     */
    List<EmpInduction> selectInductionList(@Param(value = "induction") EmpInduction induction);

    /**
     * 批量提交
     *
     * @param updateBy     更新者
     * @param inductionIds 入职ID集合
     * @return 结果
     */
    int submitInduction(@Param(value = "updateBy") String updateBy, @Param(value = "inductionIds") Integer[] inductionIds);

    /**
     * 批量驳回
     *
     * @param updateBy     更新者
     * @param inductionIds 入职ID集合
     * @return 结果
     */
    int rejectInduction(@Param(value = "updateBy") String updateBy, @Param(value = "inductionIds") Integer[] inductionIds);

    /**
     * 批量审核
     *
     * @param updateBy     更新者
     * @param inductionIds 入职ID集合
     * @return 结果
     */
    int auditInduction(@Param(value = "updateBy") String updateBy, @Param(value = "inductionIds") Integer[] inductionIds);
}
